package com.ytjj.qmyx.admin.service;

import com.ytjj.common.api.CommonPage;
import com.ytjj.common.api.CommonResult;
import com.ytjj.qmyx.admin.model.ReissueHistory;
import com.ytjj.qmyx.admin.model.request.LogisticsDeleteRequest;
import com.ytjj.qmyx.admin.model.request.LogisticsFinishRequest;
import com.ytjj.qmyx.admin.model.request.LogisticsRequest;
import com.ytjj.qmyx.admin.model.request.ReissueLogisticsRetrieveRequest;
import com.ytjj.qmyx.admin.model.response.ReissueLogisticsExportResponse;
import com.ytjj.qmyx.admin.model.response.ReissueLogisticsResponse;
import com.ytjj.qmyx.mall.model.ReissueLogistics;

import java.util.Date;
import java.util.List;

public interface ReissueLogisticsService {

    CommonPage<ReissueLogisticsResponse> getReissueLogisticsList(LogisticsRequest logisticsRequest);

    List<ReissueLogisticsExportResponse> exportList(LogisticsRequest logisticsRequest);


    CommonResult insertLogistics(ReissueLogistics reissueLogistics);

    /**
     * 修改补货单
     * @param reissueLogistics
     * @return CommonResult
     */
    CommonResult updateRetrieveInfo(ReissueLogisticsRetrieveRequest reissueLogistics, Integer adminId);

    Integer updateStatus(Integer id);

    void batchHandle(String ids);

    Integer delReissueLogistics(LogisticsDeleteRequest request);

    CommonPage<ReissueLogisticsResponse> exportData(LogisticsRequest logisticsRequest);

    boolean updatefinishStatus(Integer id, Date finishTime);

    boolean updateSupplyChainFinishStatus(Integer id,String childOrderNo);

    void finishedReissueLogistics(LogisticsFinishRequest logisticsFinishRequest);

    /**
     * 修改供应链补单理由
     * @param id
     * @param logisticsReason
     */
    void updateSupplyChainLogisticsReason(Integer id, String logisticsReason,String childOrderNo);
}
